﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;

namespace Controllers
{
    public class AsignacionController
    {
        public static void Agregar(Asignacion asignacion)
        {
            //Auto_Id, Auto_ModeloId, Auto_Patente, Auto_Licencia, Auto_Rodado, Auto_RelojId, Auto_Habilitado
            var sql = "INSERT INTO SUPERACIDOS.Asignacion (Asignacion_AutoId,Asignacion_ChoferId,Asignacion_TurnoId,Asignacion_Fecha) " +
                       " VALUES ({0},{1},{2},'{3}')";

            sql = string.Format(sql, asignacion.Asignacion_AutoId, asignacion.Asignacion_ChoferId, asignacion.Asignacion_TurnoId, asignacion.Asignacion_Fecha.ToString("yyyy-MM-dd"));


            ConexionBaseDeDatos.Guardar(sql, CommandType.Text);

        }

        public static bool ExisteAsignacion(Asignacion asignacion)
        {
            var sql = "SELECT COUNT(*) Cantidad " +
                      "FROM SUPERACIDOS.Asignacion " +
                      "WHERE  Asignacion_AutoId = {0} AND Asignacion_TurnoId = {1}  AND Asignacion_Fecha = '{2}'";

            sql = string.Format(sql, asignacion.Asignacion_AutoId, asignacion.Asignacion_TurnoId,
                                asignacion.Asignacion_Fecha.ToString("yyyy-MM-dd"));

            var cantidad = 0;
            var reader = ConexionBaseDeDatos.GetData(sql, CommandType.Text);

            if (reader.HasRows)
            {
                reader.Read();
                if (reader["Cantidad"] != DBNull.Value)
                    cantidad = (int)reader["Cantidad"];

            }

            return cantidad > 0;
        }

        public static int ObtenerAuto (int turnoId, DateTime fecha, int choferId)
        {
            var sql = "SELECT Asignacion_AutoId  [autoId]" +
                      "FROM SUPERACIDOS.Asignacion " +
                      "WHERE  Asignacion_ChoferId = {0} AND Asignacion_TurnoId = {1}  AND Asignacion_Fecha = '{2}'";

            sql = string.Format(sql, choferId, turnoId,fecha.ToString("yyyy-MM-dd"));

            var autoId = -1;
            var reader = ConexionBaseDeDatos.GetData(sql, CommandType.Text);

            if (reader.HasRows)
            {
                reader.Read();
                if (reader["autoId"] != DBNull.Value)
                    autoId = (int)reader["autoId"];

            }

            return autoId;
        }

   
    }
}
